package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import Vista.JFrameActuStock;
import Vista.JFrameIngrediente;
import Modelo.Ingrediente;
import Modelo.IngredienteDAO;

public class ControladorJFrameIngrediente implements ActionListener{

	private JFrameIngrediente ventanaIngrediente;
	private JFrameActuStock ventanaActualizar;
	private ControladorJFrameActuStock controladorVentanaActualizar;
	
	
	public ControladorJFrameIngrediente() {
		super();
		this.ventanaIngrediente = new JFrameIngrediente();
		this.ventanaIngrediente.addListener(this);
		this.ventanaIngrediente.setVisible(true);
	}
	

	@Override
	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
		if(actionCommand.equals("Registrar"))
		{
			RegistrarIngrediente();
		}
		else if (actionCommand.equals("Modificar"))
		{
			ModificarIngrediente();
		}
		else if (actionCommand.equals("Eliminar"))
		{
			EliminarIngrediente();
		}
		else if(actionCommand.equals("Limpiar"))
		{
			ventanaIngrediente.Blanquear();
			
		}
		else if(actionCommand.equals("Salir"))
		{
			ventanaIngrediente.setVisible(false);
		}
		else if(actionCommand.equals("Buscar"))
		{
			BuscarIngrediente();
		}	
		else if(actionCommand.equals("Registrar Compras"))
		{
			controladorVentanaActualizar = new ControladorJFrameActuStock();
			//ventanaActualizar.setVisible(true);
			//ActualizarStock();
		}
	}
	
	public void RegistrarIngrediente()
	{
		try
		{
			if(ventanaIngrediente.getCodIngrediente().equals("") || ventanaIngrediente.getNombIngrediente().equals("") || ventanaIngrediente.getDescrip().equals("") || ventanaIngrediente.getStock() == 0)
			{
				ventanaIngrediente.MostrarMensaje("Deben ingresar todos los datos para Registar");
			}
			else
			{
				IngredienteDAO ingredienteDAO = new IngredienteDAO();
				Ingrediente ingrediente = new Ingrediente(ventanaIngrediente.getCodIngrediente(),ventanaIngrediente.getNombIngrediente(), ventanaIngrediente.getDescrip(),ventanaIngrediente.getStock());
				ingredienteDAO.AgregarIngrediente(ingrediente);
				ventanaIngrediente.MostrarMensaje("Ingrediente Agregado exitosamente!");
				ventanaIngrediente.Blanquear();
			}
		}
		catch (Exception e)
		{
			ventanaIngrediente.MostrarMensaje("No se pudo agregar el ingrediente");
			ventanaIngrediente.Blanquear();
		}
		
	}
	public void ModificarIngrediente()
	{
		try
		{
			if(ventanaIngrediente.getCodIngrediente().equals("") || ventanaIngrediente.getNombIngrediente().equals("") || ventanaIngrediente.getDescrip().equals("") || ventanaIngrediente.getStock() == 0)
			{
				ventanaIngrediente.MostrarMensaje("Deben ingresar todos los datos para Registar");
			}
			else
			{
				IngredienteDAO ingredienteDAO = new IngredienteDAO();
				Ingrediente ingrediente = new Ingrediente(ventanaIngrediente.getCodIngrediente(),ventanaIngrediente.getNombIngrediente(), ventanaIngrediente.getDescrip(),ventanaIngrediente.getStock());
				ingredienteDAO.ModificarIngrediente(ingrediente);
				ventanaIngrediente.MostrarMensaje("Ingrediente Agregado exitosamente!");
				ventanaIngrediente.Blanquear();
			}
		}
		catch (Exception e)
		{
			ventanaIngrediente.MostrarMensaje("No se pudo modificar el ingrediente");
			ventanaIngrediente.Blanquear();
		}
		
		
	}
	public void EliminarIngrediente()
	{
		//para esto se debe verificar la cantidad en stock
	}
	public void BuscarIngrediente()
	{
		try
		{
			if(ventanaIngrediente.getCodIngrediente().equals(""))
			{
				ventanaIngrediente.MostrarMensaje("Deben ingresar todos los datos para Registar");
			}
			else
			{
				IngredienteDAO ingredienteDAO = new IngredienteDAO();
				Ingrediente ingrediente = new Ingrediente(ventanaIngrediente.getCodIngrediente(),ventanaIngrediente.getNombIngrediente(), ventanaIngrediente.getDescrip(),ventanaIngrediente.getStock());
				ingrediente = ingredienteDAO.ConsultarIngrediente(ventanaIngrediente.getCodIngrediente());
				ventanaIngrediente.setCodIngrediente(ingrediente.getCodIngrediente());
				ventanaIngrediente.setNombIngrediente(ingrediente.getNombIngrediente());
				ventanaIngrediente.setDescripcion(ingrediente.getDescrip());
				ventanaIngrediente.setStock(ingrediente.getStock());
				//aca no se como mostrar los datos
			}
		}
		catch (Exception e)
		{
			ventanaIngrediente.MostrarMensaje("El ingrediente indicado no se encuentra registrado");
			ventanaIngrediente.Blanquear();
		}
	}
	
}
